package IOStream.ConvertStream;

import java.io.FileReader;
import java.io.IOException;
import java.nio.charset.Charset;

/**
 * ClassName:Dome001
 * Package:IOStream.ConversionStream
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/3/3-18:43
 * @Version:v1.0
 */
public class Dome001 {
    /**
     * 转换流：是字符流和字节流之间的桥梁
     * <p>
     * 1.指定字符集续写
     * 2.字节流想要使用字符流中的方法
     */
    public static void main(String[] args) throws IOException {
        /*转换文件编码
         * 需求1.手动创建一个GBK的文件,把文件中的中文读取到内存中,不能出现乱码
         * 需求2.把一段中文按照GBK的方式写到本地文件
         * 需求3.将本地文件中的GBK文件,转成UTF-8*/

            ////需求1.利用转换流按照指定字符编码读取
//        //创建对象,并指定字符编码
//        InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\aaa\\gbkfile.txt"),"GBK");
//        //读取数据
//        int ch;
//        while ((ch=isr.read())!=-1){
//            System.out.print((char)ch);
//        }
//        //释放资源
//        isr.close();


        //需求1.利用转换流按照指定字符编码读取
        FileReader fr = new FileReader("E:\\aaa\\gbkfile.txt", Charset.forName("GBK"));
        int ch;
        while ((ch = fr.read()) != -1) {
            System.out.print((char) ch);
        }
        //释放资源
        fr.close();
    }
}
